#!/usr/bin/env node

const fs = require('fs')
const path = require('path')
const inquirer = require('inquirer')
const ejs = require('ejs')

inquirer.prompt([
    {
        type: 'input',
        name: 'name',
        message: 'Please set name'
    }
])
    .then(answers => {
        // console.log(anwsers)
        // 根据用户回答的结果生成文件

        // 模板目录
        const tmplDir = path.join(__dirname, 'templates')
        // 目标目录
        const destDir = process.cwd()       // nodejs提供的方法，当前目录的意思

        // 创建一个目录，以用户的填写值命名
        fs.mkdir(answers.name, function (err) {
            if (err) {
                console.log(err)
                return false
            }
            // 将模板下的文件全部转换到目标目录
            fs.readdir(tmplDir, (err, files) => {
                if (err) throw err
                files.forEach(file => {
                    // 通过模板引擎渲染文件
                    ejs.renderFile(path.join(tmplDir, file), answers, (err, result) => {
                        if (err) throw err

                        // 将结果写入目标文件路径
                        fs.writeFileSync(path.join(destDir + '/' + answers.name, file), result)
                    })
                })
                console.log('build success')
            })
        })

    })